#include <QtWidgets/QApplication>
#include <QtWidgets/QWidget>
#include <QtWidgets/QLabel>
#include <QtWidgets/QVBoxLayout>
#include <QtWidgets/QPushButton>
#include <QtCore/QSysInfo>
#include <QtCore/QString>

int main(int argc, char *argv[])
{
    QApplication app(argc, argv);

    // 创建一个窗口
    QWidget window;
    window.setWindowTitle("System Information");

    // 使用垂直布局
    QVBoxLayout *layout = new QVBoxLayout(&window);

    // Qt版本信息
    QLabel *qtVersionLabel = new QLabel("Qt version: " QT_VERSION_STR);
    layout->addWidget(qtVersionLabel);

    // 平台信息
    QLabel *platformLabel = new QLabel("Platform: " + QSysInfo::prettyProductName());
    layout->addWidget(platformLabel);

    // 构建信息
    QLabel *buildAbiLabel = new QLabel("Build ABI: " + QSysInfo::buildAbi());
    layout->addWidget(buildAbiLabel);

    // 系统信息
    QLabel *kernelTypeLabel = new QLabel("Kernel type: " + QSysInfo::kernelType());
    layout->addWidget(kernelTypeLabel);

    QLabel *kernelVersionLabel = new QLabel("Kernel version: " + QSysInfo::kernelVersion());
    layout->addWidget(kernelVersionLabel);
	
	QPushButton* button = new QPushButton("click=>quit!"); // 创建一个按钮，并设置显示文本
    QObject::connect(button, &QPushButton::clicked, &app, &QApplication::quit); // 连接按钮的clicked信号到QApplication的quit槽函数
	layout->addWidget(button);
    // 设置布局并显示窗口
    window.setLayout(layout);
    window.show();

    // 运行应用程序事件循环
    return app.exec();
}